package com.zzyl.nursing.service;

import com.zzyl.common.core.page.TableDataInfo;
import com.zzyl.nursing.domain.Reservation;
import com.zzyl.nursing.dto.ReservationDto;
import com.zzyl.nursing.vo.TimeCountVo;

import java.util.List;

/**
 * @author: ZHD
 * @Date: 2025/08/23 7:48
 * @Description:
 */
public interface ReservationService {

    /**
     * 新增预约
     * @param reservationDto 预约信息Dto
     */
    void addReservation(ReservationDto reservationDto);

    Integer getCancelledReservationCount(Long userId);

    TableDataInfo<Reservation> page(Integer pageNum, Integer pageSize, Integer status);

    /**
     * 取消预约
     * @param id 预约id
     */
    void cancelReservation(Long id);

    /**
     * 根据时间查询预约数量
     * @param time 时间
     * @return 预约数量
     */
    List<TimeCountVo> countByTime(Long time);
}
